package com.xy.exam.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xy.exam.entity.User;

/**
 * @Author:徐莹
 * @Date:2025/04/14
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 根据用户ID查询用户信息
     * @param id 用户ID
     * @return 用户信息
     */
    User findUserById(Integer id);
    
    /**
     * 根据用户名查询用户信息
     * @param username 用户名
     * @return 用户信息
     */
    User findUserByUsername(String username);
    
    /**
     * 添加用户
     * @param user 用户信息
     * @return 添加后的用户信息
     */
    User addUser(User user);
    
    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 更新后的用户信息
     */
    User updateUser(User user);
    
    /**
     * 删除用户
     * @param id 用户ID
     */
    void deleteUser(Integer id);
    
    /**
     * 分页查询用户列表
     * @param page 分页参数
     * @return 分页用户列表
     */
    Page<User> findUserPage(Page<User> page);
    
    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return 登录用户信息，登录失败返回null
     */
    User login(String username, String password);
    
    /**
     * 注册用户
     * @param user 用户信息
     * @return 注册成功返回用户信息，失败返回null
     */
    User register(User user);
    
    /**
     * 修改密码
     * @param userId 用户ID
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     * @return 是否修改成功
     */
    boolean changePassword(Integer userId, String oldPassword, String newPassword);
} 